<?php
require_once("class_conexionMySQL.php");
class lote{
	private $expedientes;
	public  $master_query;
	//  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
	function __construct(){
		$this->expedientes = array();
		$this->master_query = "";
	}
	//  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
	public function abrir( $Criterios, $order = ''){
		$this->master_query = $this->obtenerQuery( $Criterios).$order;
		
		//echo $this->master_query;
		
		$consulta = new conexionMySQL();
		$index = 0;
		if( $consulta->ejecutar( $this->master_query)){
			while( $fila = $consulta->getResultado()){
				$this->expedientes[$index] = array();
				$this->expedientes[$index][0] = $fila->autos;
				$this->expedientes[$index][1] = $fila->acta;
				$this->expedientes[$index][3] = $fila->cara;
				$this->expedientes[$index][4] = $consulta->mysql_to_php( $fila->actaf);
				$this->expedientes[$index][5] = $fila->arma;
				$this->expedientes[$index][6] = $fila->tit;
				$index ++;
			}
		}
		return $this->master_query;
	}
	//  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
	public function obtenerQuery( $Criterio){
		$Crit = $this->formarCritetio( $Criterio);
		$query = array();
		for( $i = 0, $cant = count( $Crit); $i < $cant; $i ++){
			switch( $Crit[$i][0]){
				case 1:
					$query[] = "select `autos` from `expedientes` where `autos`=".$Crit[$i][2]." or `acta`=".$Crit[$i][2]." or `autos` in (select e.`autos` from `caracter` c,`personas` p,`expedientes` e where c.`expediente`=e.`autos` and c.`persona`=p.`id` and (p.`dnro`=".$Crit[$i][2]." or p.`pnro`=".$Crit[$i][2]."))";
					break;
				case 2:
					$query[] = "select `autos` from `expedientes` where `cara` like '%".$Crit[$i][2]."%' or `autos` in (select e.`autos` from `expedientes` e,`reparticiones` r,`organismos` o where e.`rep`=r.`id` and r.`org`=o.`id` and (o.`nom` like '%".$Crit[$i][2]."%' or r.`nom` like '%".$Crit[$i][2]."%')) or `autos` in (select e.`autos` from `caracter` c,`personas` p,`expedientes` e where c.`expediente`=e.`autos` and c.`persona`=p.`id` and concat(p.`ape`,' ',p.`nom`) like '%".$Crit[$i][2]."%') or `autos` in (select   `autos` from `secuestros` where `objeto` like '%".$Crit[$i][2]."%')";
					break;
				case 3:
					switch( $Crit[$i][1]){
						case 'ESTADO':
							$query[]="select e.`autos` from `expedientes` e,`tipoestado` t where (e.`est`=t.`id` and t.`est` like '%".$Crit[$i][2]."%') or `autos` in (select e.`autos` from `caracter` c,`tipoestado` t`,expedientes` e where c.`expediente`=e.`autos` and c.`est`=t.`id` and t.`est` like '%".$Crit[$i][2]."%')";
							break;
						case 'IMPUTADO': case 'INSPECTOR': case 'ABOGADO': case 'TESTIGO': case 'DENUNCIANTE':
							$query[]="select e.`autos` from `caracter` c,`personas` p,`roles` r,`expedientes` e where c.`expediente`=e.`autos` and c.`persona`=p.`id` and c.`rol`=r.`id` and r.`nom`='".$Crit[$i][1]."' and concat(p.`ape`,' ',p.`nom`) like '%".$Crit[$i][2]."%'";
							break;
						case 'USUARIO':
							//$query[]="select e.`autos` from `usuarios` u,`ubicaciones` l,`expedientes` e where u.`id`=l.`resp` and l.`id`=e.`ubi` and u.`apodo`='".$Crit[$i][2]."'";
							$query[]="select ub.`autos` from `usuarios` us,`ubicaciones` ub,`armarios` a where ub.`usuario`=us.`id` and us.`apodo`='".$Crit[$i][2]."'";
							break;
						case 'UBICACION':
						//$query[]="select e.`autos` from `ubicaciones` l,`expedientes` e where l.`id`=e.`ubi` and (l.`arma`='".$Crit[$i][2]."' or l.`tit`='".$Crit[$i][2]."')";
							$query[]="select e.`autos` from `ubicaciones` ub,`armarios` a where ub.`armario`=a.`id` and ub.`usuario`=us.`id` and (ub.`armario`='".$Crit[$i][2]."' or a.`titulo`='".$Crit[$i][2]."')";
							break;
					}
					break;
			}
			$query[] = ") and `autos` in (";
		}
		$Final = "select x.`autos`,x.`acta`,x.`actaf`,x.`cara`,ifnull(ar.`nombre`,'Archivo') `arma`,ifnull(ar.`titulo`,a.`caja`) `tit` from ((`expedientes` x join `ubicaciones` u join `armarios` ar on x.`autos`=u.`autos` and u.`armario`=ar.`id`) left join `archivos` a on x.`autos`=a.`autos`) where u.`fecha`=(select `fecha` from `ubicaciones` where `autos`=x.`autos` order by `fecha` desc limit 1)and x.`autos` in (";
		for( $j = 0, $cant = (count( $query) - 1); $j < $cant; $j ++){
			$Final .= $query[$j];
		}
		return $Final.')';
	}
	//  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
	public function formarCritetio( $Cr){
		$temp = explode( '_', $Cr);
		$crit = array();
		for( $i = 0, $cant = count( $temp); $i < $cant; $i ++){
			$crit[ $i] = array();
			if( substr_count( $temp[ $i], ':')){
				$xtemp = explode( ':', $temp[ $i]);
				$crit[ $i][ 0] = 3;				//			3  -  CAMPO LIKE ORGANISMO, REPARTICION, PRIORIDAD, UBICACION, ESTADO, SECUESTRO, ROL, DECLARACION
				$crit[ $i][ 1] = strtoupper($xtemp[ 0]);
				$crit[ $i][ 2] = $xtemp[ 1];
			}else{
				if( is_numeric( $temp[ $i])){
					$crit[ $i][ 0] = 1;			//			1  -  NUMERO DE AUTOS, ACTA, DOCUMENTO, PRONTUARIO
					$crit[ $i][ 2] = $temp[ $i];
				}else{
					$crit[ $i][ 0] = 2;			//			2  -  LIKE CARATULA, APELLIDO, NOMBRE, SECUESTRO
					$crit[ $i][ 2] = $temp[ $i];
				}
			}
		}
		return $crit;
	}
	//  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
	public function getJSONLote(){
		$html  ="<script language='JavaScript' type='text/javascript'>\n";
		$html .="var LOTEJSON = ".json_encode($this->expedientes)."\n";
		$html .="</script>";
		return $html;
	}
}
?>